const express = require('express');
const app = express();
const formidable = require('formidable');//引入文件上传模块
const path = require('path');//引入path模块
const fs = require('fs');//引入fs模块
const time = require('time-stamp');//引入时间模块
app.listen(3000, () => { console.log('服务器已开启') });

app.post('/files', (req, res) => {
    //设置文件上传路径
    let form = formidable({
        uploadDir: path.join(__dirname, 'file'),//文件上传的路径
        keepExtensions: true,//保留原文件后缀名
    })

    // 解构form中的参数
    form.parse(req, (err, fileds, files) => {
        console.log(err, fileds, files);

        //结构赋值取出数据里的size属性
        let { size } = files.photo;

        //判断是否上传文件
        if (size == 0) {
            res.send(err)
            return;
        }

        //上传文件后保留原文件名加年月日时分秒和8为随机数
        let oldName = files.photo.filepath; //上传后的文件路径

        //文件重命名,生成年月日加8位随机数，获取上传的文件的后缀名吗
        let newName = time('YYYYMMDDHHssmm') + (Math.random() + '').substring(2, 10) + path.extname(oldName);
        
        //把新名字添加到给指定的路径上传的文件更换新名字
        let newPath = path.join(__dirname,'file',newName);

        //重命名名字，跟改为加 年 月 日 时分秒，和8位随机数的名字 
        fs.renameSync(oldName, newPath);

        //如果有文件回应上传成功
        res.send('上传成功')
    })
})
